package forcadistribuido;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */



import java.rmi.Remote;
import java.rmi.RemoteException;

/**
 *
 * @author matheus
 */

public interface IForcaRemota extends Remote{

    /**
     * Registra um jogador no jogo
     * @param jogador - interface do jogador remoto
     * @return - true caso o registro tenha sido efetuado,false caso contrário
     * @throws RemoteException
     */
    public boolean jogar(IRemoteClient jogador) throws RemoteException;


    /**
     * Retira um jogador da partida
     * @param jogador - jogador a ser removido
     * @return true caso a remoção tenha sido efetuada,false caso contrário
     * @throws RemoteException
     */
    public boolean sair(IRemoteClient jogador) throws RemoteException;

    /**
     * Retorna o tamanho da palavra sorteada
     * @return o tamanho da palavra secreta
     * @throws RemoteException
     */
    public int tamanhoPalavra() throws RemoteException;


    /**
     * Envia uma letra como palpite para a palavra secreta
     * @param c - letra (palpite)
     * @return true, caso acerto, false caso contrário
     * @throws RemoteException
     */
    public boolean enviarPalpite(String c, IRemoteClient jogador) throws RemoteException;

    /**
     * Verifica se é a vez de um jogador
     * @param jogador - referencia do jogador que pretende realizar um palpite
     * @return true, caso seja possível jogar, false caso contrário
     * @throws RemoteException
     */
    public boolean verificaVez(IRemoteClient jogador)throws RemoteException;

    public String palavraSecreta() throws RemoteException;
    
}
